The domain name system is a hierarchical naming system for computers, services, or other resources connected to the Internet, or a private network. Networking devices are associated with an Internet protocol address (‘IP address’) a numerical identifier for the purpose of locating and addressing devices on a network. The domain name system associates domain names assigned to each of the participants with the IP address of the participants' devices.
The Domain Name Service (‘DNS’) resolves Uniform Resource Locators (‘URLs’) including domain names to their respective IP addresses to enable networked communication. DNS servers distributed over the Internet maintain a database that maps domain names to the associated IP addresses. A client computer uses a DNS resolver to locate its DNS server, then queries that DNS server to resolve a URL. If the DNS server is not authoritative for the destination domain, or if the DNS server does not have the information in its cache, it will not be able to answer the client query immediately. Instead, the DNS server acts as a DNS forwarder and/or issues a recursive query. A DNS forwarder will forward the query to another DNS server. If recursive querying is allowed, the DNS server asks a root name server for the IP address of a host that is authoritative for the destination domain, and then contacts the authoritative server and reports back to the client. Alternatively, the client may also receive a non-authoritative response from a DNS server if the server has found the answer in its cache.